The present invention relates generally to computer workstations which are connected for information interchange with host or mainframe computer systems; more particularly, the invention relates to a method and apparatus for generating and removing "windows" on certain computer workstations in order to provide a consistent user interaction between workstation types. Further, the invention relates to a method and apparatus which significantly improves overall response time for the presentation and removal of windows in systems wherein a host processor executes applications programs and is connected to a plurality of remote terminals.
Historically, operator interface with a mainframe computer system evolved from a single operator control console which was attached to the mainframe structure. The operator control console amounted to little more than a keyboard for enabling the operator generation of simple input commands, and a display screen for enabling the mainframe computer to present simple status messages to the operator. The evolution and expansion of this concept led to the development of multiple, limited-intelligence terminals, to enable a number of users to communicate with a mainframe system, wherein the multiple terminals were perhaps remotely positioned from one another, and from the mainframe system, but commonly connected to a controller, and the controller was connected to the mainframe computer system. However, the multiple terminal concept was a relatively low cost solution to enable multiple users to communicate with a mainframe computer system, but with limited intelligence contained within each terminal, so that the user communication was restricted to relatively simple input/output transfers.
The development of the stand-alone personal computer (PC) provided a high level of internal intelligence to enable a great many user interface functions to be added to the PC, with the result that the PC became a very "user friendly" device. Among the interface enhancements which were made possible by the PC development were enhanced cursor controls, scrolling, and "windows." These enhancements greatly improve the computer's communication with a user.
The user friendly PC soon became adapted for communication with host computer systems, initially by connecting the PC to a controller, and by writing software to enable the PC to emulate a terminal with limited intelligence, normally connectable to the controller. Eventually the PC/mainframe interface was developed to enable a PC to communicate more or less directly with a host processor, wherein the independent intelligence contained within a PC could be used both to enhance the user interface with the host system and to independently execute software apart from the host system. A class of terminals evolved utilizing these concepts, which became known as "intelligent" terminals, and the previously evolved, limited-intelligence terminals became known as "dumb" terminals. By virtue of the widely varying internal intelligence of these two types of terminals, the capabilities and rules for using the terminals also became widely varied.
A great deal of effort has been spent in attempting to develop a set of rules for common usage of computer workstations, even though the hardware designs of such workstations may be widely varied. The basis for this effort is to simplify the rules for users of these workstations, thereby reducing the amount of time required by a user in understanding the interaction with the workstation. A further basis is to allow a common programming interface to drive presentation management functions independent of workstation device types. In an idealized situation, the rules for user access and interaction would be identical for all workstations, regardless of the level of hardware design sophistication of any particular workstation. However, the idealized situation is difficult to achieve, because of the differences in hardware design sophistication between and among workstations. The so-called "intelligent" class of workstation inherently includes a hardware design which is capable of a full range of independent computer operations; the so-called "dumb" workstation typically includes only enough hardware design to enable operator interaction through a keyboard and display screen for communicating simple information and commands. For example, International Business Machines (IBM) has classified the universe of "intelligent" workstations under the heading of "independent workstations" or programmable workstations (PWS), and the second category under the designation of "dependent workstations"(DWS), or non-programmable terminals (NPT). The PWS is inherently capable of performing a relatively high level of independent computer operations, whereas the DWS is essentially capable of merely receiving command and control information from a host computer, displaying it, and transferring operator keystroke data back to the host computer via a controller. Naturally, the cost of a PWS is significantly higher than a DWS, although for a great number of computer applications the limited sophistication of a DWS is adequate for the task at hand. It is not unusual for a computer purchaser to initially utilize one or more DWS devices connected to a host computer, and then later replace these devices with PWS devices. It is also not unusual to have both DWS and PWS devices connected to the same host computer system.
A PWS is typically a complete computer processing system, and may have a built-in media device such as a diskette or hard disk. A PWS can therefore run stand-alone processing applications in the workstation, and can communicate independently with a host computer system through standard communications connections. In contrast, a DWS is connected to a host processing system through a workstation controller (WSC), and in a typical system arrangement a single WSC is connected to and supports a considerable number of DWS terminals. The WSC communicates with the host processor through local bus or remote communications connections, but each DWS is attached to the WSC via a communications cable. The DWS can operate only on host-based computer processing applications, and has only a limited internal capability to provide enhanced user interface functions. Whereas a PWS typically has 1-16 or more megabytes of internal memory, the DWS internal memory is minimal. The PWS can always store at least the data required for assembling or constructing one or more screen display images in its internal memory, whereas the DWS can only store the data to refresh the screen image currently being displayed, and therefore each time the display screen is changed in a DWS the change must be initiated by the host processor.
In any typical prior art system utilizing a host processor and workstations, wherein the workstations are utilized for user interaction and access and the host processor is utilized for running applications programs, the host processor provides certain fundamental information. For example, the host processor may generate a data stream containing information to be displayed on a workstation screen, and information for controlling the presentation and position of the data on the screen. The data stream generally does not convey any logical intelligence, i.e. information to enable the workstation to independently control and manipulate subsequent screen display panels as a consequence of its interfacing with the user. The control and manipulation of each screen display panel is typically generated by the host processor, by transmitting a new data stream for each panel, wherein each data stream contains new presentation and position information. In the case of a PWS, the host processor data stream is sent directly to the workstation and is processed internally in the workstation, which itself contains sufficient internal memory and program data to directly control the interaction with the display screen and keyboard. In the case of the DWS, the host processor data stream is sent to a workstation controller (WSC), and the WSC provides the internal memory and control for directly controlling the display screen of the DWS. The workstation controller may poll the workstation to determine whether a keystroke should be recognized or whether any of a predetermined number of commands have been accepted. This results in a more limited set of options available to the user of a DWS, than is available to the user of a PWS.
It would be a distinct advantage to the users if the DWS and PWS terminals could be operated under the same set of user interaction rules, and manufacturers strive continuously for this result. For example, IBM has defined a "common user access"(CUA) for use with IBM's Systems Application Architecture (SAA), which has been published in IBM Publication No. SC26-4583-0 under the title "Common User Access Basic Interface Design Guide," and in IBM Publication No. SC26-4582 under the title "Common User Access Advanced Interface Design Guide." These publications set forth a set of common user access specifications to attempt to achieve consistency among the various types of workstation designs. However, the specifications distinguish, in a number of important respects, the rules for user access to PWS terminals versus DWS terminals. It would be an advantage if the number of instances of differences between such terminals could be reduced or even eliminated, to enable users to have the same understanding regarding access to a system, regardless of the degree of design sophistication of the user's workstation. The foregoing publications distinguish PWS terminals as "programmable workstations" and DWS terminals as "nonprogrammable terminals." A nonprogrammable terminal is defined as a terminal attached to a host processor via a workstation controller, in which all or most of the user interface functions are controlled by the host.
The user interaction with a terminal, and therefore with the host computer, is accomplished via a user-operated keyboard and a display screen. The user interacts with the display screen by means of a cursor to provide a focal point for user interaction with the panel. In some cases, user interaction is accomplished at least in part via a "mouse" device, which enables the user to interact with display panels and to convey signals to the host processor for generating new and/or modified display panels.
Among the enhancements which have been made available for improving user interaction in recent years is a concept which has become known as "windowing," which allows the presentation of display panels in overlapping relationship on a display screen. The concept enables a user to retain a display panel on the screen, while temporarily superimposing a further display panel entirely or partially over the retained panel. This enables the user to divert his attention from a first display panel to one or more secondary display panels for assistance and/or reference, so that overall user interaction may be improved. The processor which controls this operation must retain the information relating to the original display panel and any subsequent overlaid windows, including the particular display panel conventions associated with each, and must also control the processing operations commanded by the user during his interactive use of each of the windows. Windowing activities impose significant processing loads, and also require reasonably short response times in order to be effective.
In a computer system having a host processor executing applications programs, and which includes a significant number of remote terminals, the processor loading of enhancements such as windows presents a serious problem, for all of the processing operations must be performed within the host processor and transmitted to the terminals in real time, without perceptible delays which could inhibit user efficiency. As the number of terminals which are connected to a host processor increases, the problem becomes more serious, and in practical terms it imposes such processing loads on the host processor as to make the windows enhancement unusable with systems of this type. Therefore, without an adequate solution to this problem, the "common user access"(CUA), which defines a set of interaction rules intended to be adopted for all terminals, cannot be implemented. It is extremely desirable that a solution to this problem be found, in order that the common user access rules can indeed be applied to all terminals. The present invention addresses this problem, and provides a solution which enables the common user access rules to be applied to DWS terminals as well as to PWS terminals.
Although a PWS terminal is of considerably more sophisticated design than a DWS terminal, when it is used in an environment where a host processor executes applications programs and merely utilizes the PWS terminal for operator/user interface, the PWS terminal suffers from most of the same limitations as a DWS terminal. For example, each time a display panel is changed on the screen of either type of terminal, the host processor creates the panel description, and presentation, and constructs a data stream for transmission to the terminal. A typical data stream transmission may include 2,000 bytes of information, more or less, and may require a transmission time of at least several seconds, in addition to the processing time required for creating and developing the data stream. In a system involving a considerable number of such terminals, the processing load and transmission time constraints are cumulative, leading to significant reduction in overall system performance. The present invention deals with a method for improving that performance with respect to both PWS terminals and DWS terminals. However, for convenience herein, reference will be made to DWS terminals throughout, it being understood that the uses and advantages of the invention are equally applicable to both types of terminals. Where reference is made herein to workstation controllers (WSC), it should be understood that such controllers are associated with DWS terminals, and PWS terminals do not utilize workstation controllers. PWS terminals communicate directly with the host processor through suitable I/O communications controls, but PWS devices have internal logic which effectively performs the same functions as are performed by workstation controllers.